package com.qinyunkj.searchchatserver.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qinyunkj.searchchatserver.model.entity.Article;
import com.qinyunkj.searchchatserver.model.entity.ArticleQA;
import com.qinyunkj.searchchatserver.model.vo.ArticleStatistics;

import java.util.List;

public interface ArticleService extends IService<Article> {
    /**
     * 分页查询文章
     */
    Page<Article> pageArticles(Integer pageNum, Integer pageSize, String keyword);

    /**
     * 根据分类获取文章
     */
    Page<Article> getArticlesByCategory(String category, Integer pageNum, Integer pageSize);

    /**
     * 获取所有分类
     */
    List<String> getAllCategories();

    /**
     * 获取热门文章
     */
    List<Article> getHotArticles(int limit);

    /**
     * 根据标签获取文章
     */
    Page<Article> getArticlesByTag(String tag, Integer pageNum, Integer pageSize);

    /**
     * 获取所有标签
     */
    List<String> getAllTags();

    /**
     * 手动触发爬虫
     */
    void crawl(String url);

    /**
     * 获取文章统计信息
     */
    ArticleStatistics getStatistics();

    /**
     * 获取文章列表
     */
    Page<Article> getArticleList(Integer pageNum, Integer pageSize, String keyword, String category, List<String> tags);

    /**
     * 分析文章并更新分类和标签
     */
    void analyzeArticle(Long articleId);

    /**
     * 生成文章问答
     */
    List<ArticleQA> generateArticleQA(Long articleId);

    /**
     * 获取文章的问答列表
     */
    List<ArticleQA> getArticleQAList(Long articleId);
}
